package at.guigu.enums;

import com.baomidou.mybatisplus.annotation.EnumValue;
import lombok.Getter;

@Getter
public enum UserStatus {
    // 定义枚举类本类主要属性
    FROZEN(0, "禁止使用"),
    NORMAL(1, "已激活"),
    ;
    // 定义枚举类其它普通属性
    @EnumValue
    private int value;
    private String desc;

    // 枚举类中普通属性通过构造器赋值（由于未加@AllArgsConstructor，所以必须利用有参构造器给其它属性赋值）
    private UserStatus(Integer value, String desc) {
        this.value = value;
        this.desc = desc;
    }
}


/*
等同于
@Getter
public enum UserStatus implements IEnum接口中的Inttereger> {
    // 定义枚举类本类主要属性
    FROZEN(0, "禁止使用"),
    NORMAL(1, "已激活"),
    ;
    // 定义枚举类其它普通属性
    private int value;
    private String desc;

    // 枚举类中普通属性通过构造器赋值
    private UserStatus(Integer value, String desc) {
        this.value = value;
        this.desc = desc;
    }
    // 重写IEnum接口中的getter方法
    @Override
    public Integer getValue() {
        return this.value;
    }
}
*/
